package cn.coisini.service;

import cn.coisini.model.common.dtos.Result;
import cn.coisini.model.common.enums.ResultEnum;
import cn.coisini.model.dto.CategoryDto;
import cn.coisini.model.pojo.Category;
import cn.coisini.model.vo.QueryVo;

import java.util.List;
import java.util.Map;

/**
 * @author xiangshaw
 * Description: 分类接口
 */
public interface CategoryService {
    // 根据名称查询分类
    Category findByName(String categoryName);
    // 根据id查询分类名称
    Category findById(String id);
    // 根据ids查询分类名称
    List<Category> findByIds(List<String> ids);
    // 新增分类
    Result<ResultEnum> addCategory(CategoryDto categoryDto);
    // 查询分类列表
    Result<Object> getCategoryList(QueryVo queryVo);
    // 查询文章列表
    Result<List<Category>> getArticleCategoryList();
    // 修改分类
    Result<ResultEnum> updateCategory(CategoryDto categoryDto);
    // 删除分类
    Result<ResultEnum> deleteCategory(String id);
    // 批量删除分类
    Result<ResultEnum> deleteCategoryByIds(List<String> ids);
    // 根据分类ids查询分类名称
    Map<String, String> getCategoryNamesByIds(List<String> categoryIds);
    // 根据用户id查询分类
    List<Map<String, Object>> getCategoryByUserId(String userId);
    // 获取推荐分类
    List<Map<String, Object>> getRcategoryByUserId(String userId);
    // 添加或取消推荐recommend
    Result<ResultEnum> updateRecommendCategory(CategoryDto categoryDto);
}
